#ifndef CILENT_H
#define CILENT_H

#include <QWidget>
#include <QTcpSocket>
#include "login_widget.h"
#include "database.h"
#include "namecard.h"
#include "detailwidget.h"
#include "listitem.h"
#include <tableitem.h>
#include "msgsocket.h"

namespace Ui {
class cilent;
}

class cilent : public QWidget
{
    Q_OBJECT

public slots:

    void ShowDetilWidget(QString ModelNumber);


public:
    explicit cilent(QWidget *parent = 0);
    ~cilent();

    //// 登陆成功，将登陆界面创建的magsocket类传到主窗口；
    void SetSocket(msgsocket *magSocket, const QString &name);


private slots:
    void on_pb_send_clicked();


    ///连接登陆按钮的槽函数
    void Solt_Pb_Login(msgsocket*,QString);

    ///加入购物车槽函数
    void SlotJoinShoppingCar(QString ModelNumber);

    ///移除购物车商品槽函数
    void SlotRemoveFoods(QString ModelNumber);

    ///修改购物车商品数量
    void ModifyDatabaseFoodsNumber(QString ModelNumber,QString FoodsNumber);

    ///更新界面总计和件数label
    void UpdateTotalPriceandNumber(bool isJoin,QString SingalPrice);

    ///立即购买
    void SlotBuyNow(QString Foods,QString Price);

    ///删除订单槽函数
    void DeleteOrderForm(QString OrderformNumber);


    void on_pushButton_2_clicked();

    void on_pb_QuitAccountNumber_clicked();

    void on_pb_SettleAccounts_clicked();

    // 状态，上线下线状态
    void SltTcpStatus(const quint8 &state);

    // 解析Socket的消息
//    void SltTcpReply(const quint8 &type);
    void SltTcpReply(const quint8 &type, const QVector<QString> &dataVal);

    //// 发送订单号槽函数
    void SlotSendOrderFormNumber(QString OrderFormNumber,QString SendGoodsNumber);

    void on_pushButton_3_clicked();


    void on_comboBox_currentIndexChanged(const QString &arg1);

    void on_fontComboBox_currentIndexChanged(const QString &arg1);

    void SlotOpenFriendsChatWindows(QString FriendName,QString Id);

    void on_pb_CurrentFriendName_clicked();

private:
    Ui::cilent *ui;

//        用户信息字段
//        AccountNumber;    m_UserInfo.value(0)
//        nickName;         m_UserInfo.value(2)
//        HeadPhoto;        m_UserInfo.value(3)
//        Sex;              m_UserInfo.value(4)
//        Name;             m_UserInfo.value(5)
//        MobilePhone;      m_UserInfo.value(6)
//        ShippingAddress;  m_UserInfo.value(7)
    QVector <QString> m_UserInfo;

    QString m_CurrentChatFriend;///当前聊天好友账号信息


    /// 客户端Tcp类
    msgsocket *m_msgSocket;

    void Init();

    //消息接收缓冲区
    quint16 m_tcpBlockSize;

    //登陆界面
    login_widget login_windows;

    //数据库
    Database db;

    //创建名片窗口(不能放在函数中，放在函数中变量用完就释放)
    NameCard M_NameCard;


    //详情信息页面
    DetailWidget m_DetailWidget;

    //登陆成功，唤醒cilent窗口
    void InitCilentWindows();

    //更新某用户购物车列表
    void UpdateShoppingCartList(QVector<QString>);

    //更新商城列表
    void UpdateShoppingList(QVector<QString> PhoneInfo);

    //更新订单列表
    void UpdateOrderFormtList(QVector<QString> UserOrderFormList);

    //更新好友列表
    void UpdateFriendsList(QVector<QString> FriendsList);




};

#endif // CILENT_H
